package cn.xf.dao;

import cn.xf.domain.Product;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @author xiaofu
 * @date 2021-05-11 12:20
 * @email dearaf@163.com
 */

public interface IProductDao {

    @Select("select * from product where id=#{id}")
    Product findById(String id);

    @Select("select * from product")
    List<Product> findAll();

    @Insert("insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})")
    void save(Product product);

    @Delete("delete from product where id = #{id}")
    void deleById(String id);
    /**
     * 在传参时，如果只有一个参数，可以不配置param，如果有两个参数，需要配置，否则会报错
     * 不配置参数情况下，只能用#，如果使用$则会报错
     * @param id
     * @param status
     */
    @Update("update product set productStatus = #{status} where id = #{id}")
    void changeStatusByIds(@Param("id") String id, @Param("status") String status);

    @Select("select * from product where id = #{id}")
    Product selectById(String id);


    @Update("update product set productNum= #{productNum},productName = #{productName},cityName = #{cityName},departureTime = #{departureTime},productPrice = #{productPrice},productDesc = #{productDesc},productStatus = #{productStatus} where id = #{id}")
    void updateById(Product product);
}
